/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.tmd.controlefinanceiro.bean;

import br.com.tmd.controlefinanceiro.modelo.Conta;
import br.com.tmd.controlefinanceiro.modelo.Despesa;
import br.com.tmd.controlefinanceiro.modelo.Pagamento;
import br.com.tmd.controlefinanceiro.persistence.ContaDao;
import br.com.tmd.controlefinanceiro.persistence.DespesaDao;
import br.com.tmd.controlefinanceiro.persistence.PagamentoDao;
import java.util.Calendar;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;

/**
 *
 * @author Cícero
 */
@ManagedBean(name = "pagamentoBean")
@RequestScoped
public class PagamentoBean {
    
    private Pagamento pagamento = new Pagamento();
    private Double valor;
    private Calendar dataPagamento;
  
    @ManagedProperty(value = "#{contaBean}")
    private ContaBean contaBean;
    @ManagedProperty(value = "#{despesaBean}")
    private DespesaBean despesaBean;

    public PagamentoBean() {
    }
    
    public String deduzConta() throws Exception{
        ContaDao contaDao = new ContaDao();
        Conta contaManipulada;
        contaManipulada = contaDao.findByCod(contaBean.getContaId());
        contaManipulada.setSaldo(contaManipulada.getSaldo() - this.valor);
        contaDao.alterar(contaManipulada);
        
        DespesaDao despesaDao = new DespesaDao();
        Despesa despesa;
        despesa = despesaDao.findByCod(despesaBean.getDespesaId());
        
        PagamentoDao pagamentoDao = new PagamentoDao();
        Pagamento pago = null;
        pago.setDataPagamento(dataPagamento);
        pago.setValorPago(valor);
        pago.setDespesa(despesa);
        pagamentoDao.salvar(pago);
       
        return "lancadespesa?faces-redirect=true";
    }
    
    public String depositaValor() throws Exception{
        ContaDao contaDao = new ContaDao();
        Conta contaManipulada;
        contaManipulada = contaDao.findByCod(contaBean.getContaId());
        contaManipulada.setSaldo(contaManipulada.getSaldo() + this.valor);
              
        contaDao.alterar(contaManipulada);
        
        return "lancadespesa?faces-redirect=true";
    }
    
      public String novo() {

           return "cliente?faces-redirect=true";
    }

 
    public Pagamento getPagamento() {
        return pagamento;
    }

    public void setPagamento(Pagamento pagamento) {
        this.pagamento = pagamento;
    }
     
 
    public Double getValor() {
        return valor;
    }

    public void setValor(Double valor) {
        this.valor = valor;
    }

    public Calendar getDataPagamento() {
        return dataPagamento;
    }

    public void setDataPagamento(Calendar dataPagamento) {
        this.dataPagamento = dataPagamento;
    }
    
   
    public ContaBean getContaBean() {
        return contaBean;
    }

    public void setContaBean(ContaBean contaBean) {
        this.contaBean = contaBean;
    }
    
}
